package com.example.mp_test.controller;

import com.example.mp_test.entity.User;
import com.example.mp_test.service.UserService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

//    @GetMapping("/query")
//    List<User> query(User user) {
//        return userService.query(user);
//    }
//    @GetMapping("/query")
//    public List<User> queryUsers(@RequestParam String name, @RequestParam String email, @RequestParam int age) {
//        User user = new User();
//        user.setName(name);
//        user.setEmail(email);
//        user.setAge(age);
//
//        List<User> userList = userService.query(user);
//        return userList;
//    }

    // 条件查询
    @GetMapping("/query")
    public List<User> queryUsers(User user) {
        List<User> userList = userService.query(user);
        return userList;
    }

    //查询全部用户
    @GetMapping("/queryUser")
    public List<User> queryUser(){
        return userService.queryUser();
    }

    //查询单个用户
    @GetMapping("/queryUserById")
    User queryUserById(User userId){
        return userService.queryUserById(userId);
    }

    //查询多个用户
    @GetMapping("/queryUserBatchIds")
    List<User> queryUserBatchIds(@RequestBody List<Long> userIds){
        // body 内输入id参数
        return userService.queryUserBatchIds(userIds);
    }

    //条件查询
    @GetMapping("/queryUserByMap")
    List<User> queryUserByMap(User user){
        return userService.queryUserByMap(user);
    }

    //分页查询
    @GetMapping("/queryUserPage")
    List<User> queryUserPage(@RequestParam(value = "current") Long current,@RequestParam(value = "size") Long size){
        return userService.queryUserPage(current,size);
    }
//    @GetMapping("/test")
//    void test( ){
//        System.out.println("1");
//    }
    //模糊查询
    @GetMapping("/queryUserLike")
    List<Map<String,Object>> queryUserLike(User user){
        return userService.queryUserLike(user);
    }

    //增加用户
    @PostMapping("/addUser")
    int addUser(@RequestBody User user){
        return userService.addUser(user);
    }

    //更新用户
    @PutMapping("/updateUser")
    int updateUser(@RequestBody User user){
        return userService.updateUser(user);
    }

    //删除用户
    @DeleteMapping("/deleteUser")
    int deleteUser(@RequestBody User user){
        return userService.deleteUser(user);
    }
}

